Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

บทความนี้เรามาทำความรู้จักกับ Exception ที่ชื่อว่า IndexOutOfBoundsException กัน ซึ่ง Exception ที่เกิดขึ้นจะแสดงข้อความประมาณด้านล่าง
 Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 	at java.util.ArrayList.rangeCheck(Unknown Source) 	at java.util.ArrayList.get(Unknown Source) 	at com.doesystem.CodeFromDoesystem.main(CodeFromDoesystem.java:9) 

จากข้อความ Exception ข้างบนเราสามารถแปลข้อความบางส่วนได้ ดังนี้
Exception เกิด Exception
thread "main" ก็คือ thread ที่ชื่อว่า main
IndexOutOfBoundsException เกิด Exception ที่ชื่อว่า IndexOutOfBoundsException
Index: 0 ก็คือ index ที่ 0
Size: 0 ก็คือมีขนาด 0

เมื่อเรานำคำว่า IndexOutOfBoundsException มาแยกแปลแต่ละตัว จะได้ว่า
Index ก็คือ index ของ Array
Out Of Bounds ก็คือ นอกเหนือไปจากตัวมัน นอกเหนือขอบเขตของมัน
Exception ก็คือ เกิด Exception

ดังนั้นจากข้อความแจ้ง Exception เราสามารถสรุปได้คร่าว ๆ ว่า เกิด Exception เกี่ยวกับ index ที่นอกเหนือไปจากตัวมันหรือนอกเหนือขอบเขตของมัน

ดังนั้นลองมาดูโค้ดที่ทำให้เกิด Exception กัน
 package com.doesystem;  import java.util.ArrayList; import java.util.List;  public class CodeFromDoesystem { 	public static void main(String[] args) throws Exception { 		List testList = new ArrayList(); 		testList.get(0); 	} } 

จากข้อความและโค้ด CodeFromDoesystem.java:9 ให้เราไปดูบรรทัดที่ 9 จะเห็นว่ามีการ get ค่าที่ index 0 ออกมาจากตัวแปร testList ดังนั้นเราลองไปดูว่า testList มี index กี่ตัว และมีขนาดเท่าไหร่ จากโค้ดจะเห็นมี testList มีขนาด 0 นั่นคือยังไม่มีข้อมูลมี size = 0 เวลา get ค่า index 0 จึงเกิด Exception